package com.itheima.dao;

import com.github.pagehelper.Page;
import com.itheima.pojo.CheckGroup;
import com.itheima.pojo.Setmeal;

import java.util.List;
import java.util.Map;

/**
 * @Author : sunjun
 * @email : sunjun0207@163.com
 * @create 2019/11/9 10:56
 */
public interface SetmealDao {


    /*
    后台管理-->套餐预约占比(饼形图)
     */
    public List<Map<String,Object>> findSetmealCount();


//--------------------------------------------------
//--------------------------------------------------

     /*
    方式三微服务架构
     移动端-->根据套餐id查询套餐详细信息,
    (包括套餐基本信息、套餐包含的检查组,检查组包含的检查项)
     */
     public Setmeal findBySetmealId3(Integer id);


    /*
    方式二微服务架构
     移动端-->根据套餐id查询套餐详细信息,
    (包括套餐基本信息、套餐包含的检查组,检查组包含的检查项)
     */
    public List<Integer> findCGidsById(Integer id);

     /*
     移动端-->方式一 根据套餐id查询套餐详细信息,
    (包括套餐基本信息、套餐包含的检查组,检查组包含的检查项)
     */
    public Setmeal findBySetmealId(Integer id);


     /*
    移动端-->获取套餐列表数据
    套餐表
     */

     public List<Setmeal> findAll();

//---------------------------------------------
//---------------------------------------------


     /*
    套餐管理-->删除套餐方法
     1.删除关联表
     2.删除检查组表
     */
     public Long findCountBySetmeal(Integer id);
     public void deleteSetmealAndCheckGroup(Integer id);
     public void delete(Integer id);


    /*
    套餐管理-->编辑套餐方法
     1.根据套餐id查询套餐信息,套餐表
     根据套餐id查询所有检查组id,:已在checkgroup中定义
    2.根据套餐id查询检查组复选框,中间表
    3.提交修改表单
    Result:封装返回结果
    */
    public Setmeal findById(Integer id);
    public List<Integer> findCheckGroupIdsBySetmealId(Integer id);
    public void deleteAssociation(Integer id);
    public void edit(Setmeal setmeal);



     /*
    套餐管理-->新建添加套餐
    1.添加套餐的基本信息
    2.建立套餐表和检查组表的多对多关联关系
     */
     public void add(Setmeal setmeal);
     public void setSetmealAndCheckGroup(Map<String,Integer> map);


    /*
    套餐管理-->分页查询
     */
    public Page<Setmeal> selectByCondition(String queryString);

}
